home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / -seriously_amiga- / shareware / programming / c / c_lib / readme_first < prev    next >
Text File  |  1997-12-06  |  13KB  |  269 lines

  1.   example.library V37.20 (02.12.97)
  2.  
  3.   An Amiga shared library in 100 % C language - coming with sources.
  4.  
  5.   Compiler Checklist:        Compiler           Support
  6.                              -------------------------------
  7.    (see README.<compiler>    SAS/C 6.5x         yes
  8.     for more information)    MaxonC 3.x         yes
  9.                              StormC 2.x         yes
  10.                              DICE 3.x           (not tested, but likely)
  11.                              GCC 2.7.2.1        yes
  12.                              AztecC             (not tested)
  13.                              vbcc               yes
  14.  
  15.   OS Checklist:              Operating Sustem   Support
  16.                              -------------------------------
  17.                              Amiga OS 37-40     yes
  18.                              AROS 1.x           yes (AROS source tree)
  19.  
  20.  
  21.   Original SAS/C and StormC version (C) 1996-97 by Andreas R. Kleinert,
  22.   MaxonC version changes done 1996 by Helmut Hummel.
  23.   GCC version changes done 1997 by Stefan Fuchs and Gunter Nikl.
  24.   AROS source tree done 1997 by Aaron Digulla.
  25.   VBCC version changes done 1997 by Patrizio Biancalani.
  26.   All rights reserved.
  27.   ----------------------------------------------------------------------
  28.   This sample library intends to make Amiga shared library sources
  29.   compileable with any available Amiga C compiler - without any
  30.   changes to the source code.
  31.   And maybe in the future also running under any Amiga compatible
  32.   operating system with any CPU.
  33.  
  34.   The first goal seams to be easily done: nearly any noticeable compiler
  35.   for the Amiga does support generation of libraries by special
  36.   linker commands and pre-generated object files.
  37.  
  38.   But when looking into the details, one will find out, that these
  39.   linker functionality just reduces the influence of the programmer
  40.   on how his sources are handled, that the pre-generated object
  41.   files just originally were done in Assembler, and that each compiler
  42.   does define its own interface definitions and usage rules.
  43.  
  44.   But as a programmer, it is important to have control over the _complete_
  45.   source code and to be able to compile it _anywhere_ with only
  46.   minor changes, even better without any changes.
  47.  
  48.   Since most Amiga system modules - noticeable Libraries, Devices and
  49.   Resources - do have startup-modules and other larger parts completely
  50.   written in Assembler language, the most important task for getting
  51.   inter-compiler and operating system independant sources in my opinion
  52.   is, to completely migrate the interfaces to C language (but different
  53.   to AROS, for example, it is most important, to keep the sources running
  54.   under the current 68k AmigaOS in the _first_ place).
  55.  
  56.   This goal basically has been reached already, still missing of
  57.   course are some of the less Amiga-native compilers and of course
  58.   tests with any kind of "AmigaOS for PowerPC".
  59.  
  60.   But since Assembler is nearly as portability-hostile as BCPL _today_
  61.   we may come quite close to the goal defined above by just moving
  62.   towards C.
  63.  
  64.   Translate your 68k-assembler library startup-codes smartly
  65.   to C by simply using this source-code as an advice how to do it.
  66.  
  67.   For testing: install the (re)compiled example.library to LIBS: and
  68.   start the test program - it should pop up a requester, then.
  69.  
  70.   If you can submit adjustments for the other compilers as mentioned
  71.   above: feel free to send these.
  72.   ---
  73.   Feel free to use this source for own projects.
  74.  
  75.   It is allowed to be spread and distributed anywhere, as far
  76.   as my consent is concerned.
  77.  
  78.   Amiga International, or the current owner of the technologie,
  79.   is allowed to always put this source on their newest
  80.   Developer CD-ROM.
  81.  
  82.   Thanks and credits will always be appreciated - for example,
  83.   you MAY, but NEED NOT:
  84.   give me credits in your program's docs, send me keyfiles for
  85.   your programs using the library, and so on.
  86.   But that's simply voluntarily.
  87.  
  88.    _________________________________________________________
  89.   |      You may reach me the following way.                |
  90.   |    Send bug-reports, money or whatever to:              |
  91.   |---------------------------------------------------------|
  92.   |        * SuperView Development & Registration *         |
  93.   |          * DRAFU Development & Registration *           |
  94.   |       * Image Engineer Registration Site Europe *       |
  95.   |                                                         |
  96.   |                                                         |
  97.   |                  PerSuaSiVe SoftWorX                    |
  98.   |                                                         |
  99.   |                  Andreas R. Kleinert                    |
  100.   |                  Sandstrasse 1                          |
  101.   |                  D-57072 Siegen                         |
  102.   |                  Germany, Europe                        |
  103.   |                                                         |
  104.   | Any snail mail to the old address will still be routed. |
  105.   |                                                         |
  106.   |                  Phone:  +49-271-22869 also FAX + AM    |
  107.   |                          +49-271-22838                  |
  108.   |                                                         |
  109.   |                  Weekdays after 17.00h.                 |
  110.   |                                                         |
  111.   |         When calling via phone you may leave a message, |
  112.   |         if I'm not available - but don't expect me      |
  113.   |         calling back to USA, Australia, ... since       |
  114.   |         german phone rates are HIGHLY expensive.        |
  115.   |_________________________________________________________|
  116.  
  117.     http://home.t-online.de/home/Andreas_Kleinert/
  118.  
  119.   eMail:
  120.  
  121.         Please send binaries via ARK@COB.wwbnet.de, and keep
  122.         them smaller than 16 KB. Please think twice before
  123.         sending them - my postbox is not unlimited in size.
  124.  
  125.            - Fido    Andreas Kleinert 2:2457/350.18
  126.            - Usenet
  127.                      Andreas_Kleinert@superview.ftn.neckar-alb.de (Fido-Gate)
  128.                      Andreas_Kleinert@t-online.de                 (T-Online)
  129.                      ARK@COB.wwbnet.de                            (Z-Netz)
  130.                      ARK@amigaworld.com                           (AmigaWorld)
  131.  
  132.            - If nothing else works, try one of these public
  133.              Fido-Usenet gateways:
  134.  
  135.                In Germany:
  136.                  Andreas_Kleinert@p18.f350.n2457.z2.fido.sub.org
  137.  
  138.                From USA or elsewhere:
  139.                  Andreas_Kleinert@p18.f350.n2457.z2.fidonet.org
  140.  
  141.  
  142.  Known Bugs:        - some versions of DOpus and all Installer versions
  143.                       can't fetch the version information from the
  144.                       library binary due to some bugs in their code.
  145.                       Newer DOpus versions have this fixed and C:Version
  146.                       for example did that task always.
  147.  
  148.  
  149.  History:
  150.  
  151.  V37.20 (02.12.97): - added VBCC support, done by Patrizio Biancalani
  152.                       <P.Biancalani@agora.stm.it>
  153.  
  154.  V37.17 (24.10.97): - updated "ReadMe_MAXON" and added a bug-description
  155.                       (plus workaround) as supplied by Stephan Rupprecht
  156.                       <Rupprecht_Verwertung@t-online.de>
  157.  
  158.  V37.16 (23.8.97) : - V37.15 - frozen AROS spin-off
  159.                     - AROS-Version now included with AROS package, separately
  160.                     - added comments about Forbid/Permit/Wait/single-threading
  161.                       to the Library access functions
  162.                     - also commented the rest a little bit
  163.                       (-> maybe some certain people from comp.sys.amiga.programmer
  164.                           now feel better - but then again... maybe not ;)
  165.  
  166.  V37.14 (13.8.97) : - AROS: - the LH1_ to LH2_ macro replacements in
  167.                               "compiler.h" had been wrongly defined
  168.                             - "BPTR" type only was available under AROS,
  169.                               now using "struct SegList *"
  170.                             - AROS version now does compile under AmigaOS
  171.                               with SAS/C 6.58, too
  172.                     - "APTR seglist" now "struct SegList *"
  173.  
  174.  V37.13 (19.7.97) : - GNU makefile had lost its TABs
  175.                       (-> Gunter Nikl)
  176.  
  177.  V37.12 (29.6.97) : - fixed memory bug-fix (argh)
  178.                       (-> Gunter Nikl)
  179.                     - changed/applied GCC adjustments
  180.                       (-> diffs by Gunter Nikl)
  181.  
  182.  V37.11 (24.6.97) : - added "known bugs" section
  183.                     - LibInit now delocates library base on error
  184.                       (NULL return)
  185.                       (-> Gunter Nikl)
  186.                     - added AROS version, and created an additional
  187.                       source tree for it, since I did not get it compiled
  188.                       with SAS/C 6.57 and there's perhaps additional
  189.                       #ifdef stuf to be done. Anyone likes to merge these ?
  190.                       (-> Aaron Digulla)
  191.  
  192.  V37.10 (6.4.97) :  - added GCC version by Stefan Fuchs, snfuchs@sokrates.franken.de.
  193.                       Thanks !
  194.                     - some small changes to docs, includes and comments
  195.                     - still missing: DICE, Aztec, vbcc. Who does it ?
  196.                     - fixed ftn email address
  197.  
  198.  V37.6 (27.3.97) :  - finetuning
  199.  
  200.  V37.5 (24.1.97) :  - rewrote docs
  201.                     - added basic support for compiler independent
  202.                       register naming and SAS/C keyword replacements
  203.                       (compiler.h). Thus sources now should be easily
  204.                       adaptable for GCC as well.
  205.  
  206.  V37.4 (8.1.97) :   - added FD file
  207.                     - added new pragma file (and dir) as
  208.                       include/pragma/example_lib.h
  209.                       which works with Aztec, Maxon, Storm,
  210.                       DICE and SAS C compilers.
  211.                       Thanks to fd2pragma and Dirk Stoecker.
  212.                     - some fixes to the readme files
  213.                     - updated eMail list
  214.  
  215.  V37.3 (3.1.97) :   - slightly changed SCOPTIONS
  216.                     - fixed some style things (APTR and library casts)
  217.                     - changed note about library opening at L_OpenLibs()
  218.                     - now compileable with StormC 2.0 as well
  219.                       (not tested with 1.1) - see readme file for StormC
  220.                     - added project file for StormC 2.0, smakefile still
  221.                       present - select, which one you'd like to use
  222.  
  223.  V37.2 (12.12.96) : - applied some more changes and fixes
  224.                       (-> suggested by Helmut Hummel)
  225.                     - added icons
  226.                       (-> from Helmut Hummel)
  227.  
  228.  V37.1 (4.12.96) : - bumped version to V37
  229.                    - added MaxonC 3.x version by applying changes
  230.                      to the SAS/C sources and adding Maxon
  231.                      specific make and configuration files
  232.                      (-> all done by Helmut Hummel, see Readme.MAXON)
  233.                    - added StormC support
  234.                    - yet missing: DICE, Aztec, GNU. Who does it ?
  235.  
  236.  V1.4 (30.11.96) : - added SAS/C specific Ctrl-C disabling code
  237.                    - made some workarounds compiler sensitive
  238.                    - redone all with SAS/C V6.57
  239.                    - 944 Bytes ;-)
  240.  
  241.  V1.3 (13.9.96) :  - when starting lib as executable, -1 must be returned
  242.                    - now caching SysBase
  243.                    - added some comments, where changes should not
  244.                      be applied
  245.                    - added note about sharing library bases
  246.                    - documented and modified sample function,
  247.                      so that correct a0/a1/d0/d1 and a6 usage becomes
  248.                      more obviously and verbose
  249.                    - still 940 bytes ;-)
  250.  
  251.  V1.2 (5.9.96)  :  - fixed some things resulting out of a
  252.                      discussion in Z-Netz
  253.  
  254.  V1.1 (1.9.96)  :  - small changes in style
  255.                      (only bumped versions of changed modules):
  256.                        o moved "examplebase.h" to include/example/
  257.                          (so also adjusted LibInit.c, StartUp.c
  258.                           and SCOPTIONS for reflecting that)
  259.                        o SampleFuncs.h did contain wrong prototype
  260.                          (did not matter, since only used for
  261.                           ULONG function table within StartUp.c)
  262.                        o explicitely __aligned ROMTag structure
  263.  
  264.  V1.0 (14.8.96) : - first release
  265.  
  266.  
  267.  ---
  268.  All mentioned trademarks are subject to their owners.
  269.